package com.apps.java.javanote02;

public class _10继承 {
    /**
     * 继承
     * 	一、概述
     * 		继承是面向对象三大特征之一，可以使子类具有父类的属性和方法，还可以在子类中重新定义、追加属性和方法。
     *
     * 	二、格式
     * 		public class 子类名 extends 父类名(){}
     * 		父类也被称为基类和超类，子类也被称为派生类。
     *
     * 	三、特点
     * 		1.子类可以有父类的内容，子类还可以有自己特有的内容
     *
     * 	四、继承的好处和弊端
     * 		好处：
     * 			1.提高了代码的复用性（多个类相同的成员可以放到同一个类中）
     * 			2.提高了代码的维护性（如果方法的代码需要修改，修改一处即可）
     * 		弊端：
     * 			继承让类和类之间产生了关系，使类的耦合性增强了，当父类发生改变时子类的实现也不得不跟着变化，削弱了子类的独立性。
     *
     * 		什么时候使用继承：
     * 			继承体现的关系：is-a
     * 			假设：我有两个类A和B，如果他们满足A是B的一种或B是A的一种，说明他们存在继承关系，可以使用继承来体现，否则不能滥用继承。
     * 				[苹果和水果、狗狗和动物]
     *
     * 	五、继承中变量的访问特点
     * 		1.在子类方法中访问变量：就近原则
     * 	  	2.子类中所有的构造方法默认都会访问父类中无参的构造方法：
     * 			a.因为子类会继承父类中的数据，可能还会使用父类的数据，所以子类初始化之前，一定要先完成父类数据的初始化
     * 			b.每个子类构造方法的第一条语句默认是：super()
     * 		3.如果父类中没有无参构造方法，只有带参构造方法：
     * 			a.通过使用super关键字去显示的调用父类的带参构造方法
     * 			b.在父类中自己提供一个无参构造方法
     * 			推荐：自己给出无参构造方法
     *
     * 	六、super关键字
     * 		super关键字的用法和this关键字的用法相似
     * 			this：代表本类对象的引用
     * 			super：代表父类存储空间的标识（父类对象的引用）
     *
     * 	七、注意事项
     * 		1.java中类只支持单继承，不支持多继承
     * 		2.java中类支持多层继承
     */

}
